// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Erleben Sie die Aufregung: Gewinnen Sie im besten Online-Casino in Deutschland – WinThereCasino – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Erleben Sie die Aufregung: Gewinnen Sie im besten Online-Casino in Deutschland – WinThereCasino

Die Spannung des Gewinnens: Erleben Sie Online-Casino-Spiele bei WinThereCasino

Spüren Sie die Aufregung des Gewinnens mit WinThereCasino in Deutschland. Erleben Sie die Spannung von Online-Casino-Spielen, die süchtig machen. Tauchen Sie ein in eine Welt voller Abenteuer, als ob Sie in einem echten Casino wären. Probieren Sie Ihr Glück an unseren Spielautomaten oder setzen Sie alles auf eine Karte bei unseren Tischspielen. Unser Casino ist rund um die Uhr geöffnet und bietet eine sichere und unterhaltsame Spielumgebung. Werden Sie Teil der WinThereCasino-Community und spielen Sie noch heute. Die Aufregung des Gewinnens erwartet Sie!

Erleben Sie die Aufregung: Gewinnen Sie im besten Online-Casino in Deutschland - WinThereCasino

Entdecken Sie die besten Online-Slots in Deutschland: WinThereCasino

Entdecken Sie die aufregende Welt der Online-Slots in Deutschland mit WinThereCasino! Unser Casino bietet eine riesige Auswahl an Spielen von den besten Anbietern der Branche.
Spielen Sie klassische Frucht-Slots oder tauchen Sie ein in die Welt der Video-Slots mit hochauflösenden Grafiken und fesselnden Bonusrunden.
Probieren Sie Ihr Glück an progressiven Jackpot-Slots und gewinnen Sie riesige Summen!
Unser Casino ist lizenziert und reguliert, so dass Sie sicher sein können, dass alle Spiele fair und sicher sind.
Wir bieten auch großzügige Boni und Aktionen für neue und bestehende Spieler an.
Machen Sie noch heute mit und entdecken Sie, warum WinThereCasino das beste Online-Casino in Deutschland ist.
Melden Sie sich noch heute an und erhalten Sie einen Willkommensbonus, um Ihr Spielerlebnis zu verbessern.
Entdecken Sie die besten Online-Slots in Deutschland mit WinThereCasino!

Gewinnen Sie groß mit Online-Roulette: Die Erfahrung von WinThereCasino

Gewinnen Sie groß mit Online-Roulette: Die Erfahrung von WinThereCasino. Entdecken Sie die Welt des Online-Glücksspiels in Deutschland mit WinThereCasino. Profitieren Sie von unserer Expertise und unseren lukrativen Angeboten. Spielen Sie Ihre Lieblingsvariante von Roulette online und gewinnen Sie groß. Unser Casino ist für deutsche Spieler lizenziert und bietet eine sichere und unterhaltsame Spielumgebung. Probieren Sie Ihr Glück bei Online-Roulette und erleben Sie die Spannung und den Nervenkitzel von WinThereCasino. Unsere Kunden in Deutschland haben bereits groß gewonnen – warum nicht Sie auch? Melden Sie sich noch heute an und gewinnen Sie groß mit Online-Roulette bei WinThereCasino.

Poker im Internet: Erleben Sie die Aufregung von WinThereCasino

Entdecken Sie die Welt des Online-Pokers mit WinThereCasino. Erleben Sie die Spannung und Aufregung von Texas Hold’em und Omaha-Poker bequem von zu Hause aus. Unser Casino bietet eine breite Palette von Einsatzlimits, um allen Spielern gerecht zu werden.Sie können gegen Spieler aus der ganzen Welt antreten oder ein privates Spiel mit Ihren Freunden veranstalten. Unsere benutzerfreundliche Software und unser exzellenter Kundensupport sorgen dafür, dass Ihr Online-Poker-Erlebnis reibungslos und unterhaltsam verläuft.
Probieren Sie noch heute Ihr Glück bei WinThereCasino Seite aus und erleben Sie die Faszination von Poker im Internet. Werden Sie Teil unserer wachsenden Community und werden Sie zum Gewinner!

Blackjack online spielen: Die Vorteile von WinThereCasino

In Deutschland suchen Sie nach einer vertrauenswürdigen Online-Casino-Plattform für Blackjack? Dann sind Sie bei WinThereCasino genau richtig. Hier sind die Vorteile, die deutsche Spieler bei WinThereCasino finden:
1. Große Auswahl an Blackjack-Spielen: WinThereCasino bietet eine Vielzahl von Blackjack-Spielen, darunter Classic Blackjack, European Blackjack und Atlantic City Blackjack.
2. Benutzerfreundliche Oberfläche: Die Website von WinThereCasino ist einfach zu navigieren und bietet eine intuitive Benutzeroberfläche, die es einfach macht, Ihre Lieblingsspiele zu finden und zu spielen.
3. Sichere und geschützte Zahlungen: WinThereCasino verwendet die neuesten Sicherheitstechnologien, um Ihre Finanztransaktionen sicher und geschützt zu halten.
4. Schnelle Auszahlungen: Bei WinThereCasino können Sie sich auf schnelle und zuverlässige Auszahlungen verlassen.
5. Kundendienst rund um die Uhr: Der Kundendienst von WinThereCasino ist rund um die Uhr erreichbar, um sicherzustellen, dass Ihre Fragen und Bedenken sofort beantwortet werden.
6. Bonusse und Promotionen: WinThereCasino bietet regelmäßig Boni und Promotionen an, um Ihre Spielzeit noch unterhaltsamer und lohnender zu gestalten.
7. Verantwortungsvolles Spielen: WinThereCasino ist bestrebt, ein sicheres und unterhaltsames Spielerlebnis zu bieten und fördert verantwortungsvolles Spielen.
8. Lizenziert und reguliert: WinThereCasino ist von der Regierung von Curacao lizenziert und reguliert, was bedeutet, dass Sie sicher sein können, dass Sie es mit einer vertrauenswürdigen und seriösen Online-Casino-Plattform zu tun haben.

Live-Casino-Erlebnis: Die Spannung von WinThereCasino in Deutschland

Tauchen Sie ein in das Live-Casino-Erlebnis von WinThereCasino in Deutschland und spüren Sie die Spannung hautnah. Genießen Sie die Atmosphäre eines echten Casinos, während Sie bequem von zu Hause aus spielen. Unsere hochwertigen Live-Dealer-Spiele, wie Roulette, Blackjack und Baccarat, sorgen für ein authentisches Casino-Erlebnis. Interagieren Sie mit unseren professionellen Dealern und anderen Spielern in Echtzeit. Erleben Sie die Aufregung, wenn der Kugel im Roulette-Kessel landet oder wenn Sie Ihre Hand in Blackjack gewinnen. WinThereCasino bietet Ihnen ein Live-Casino-Erlebnis der Extraklasse. Probieren Sie es noch heute aus und lassen Sie sich von der Spannung mitreißen!

Erleben Sie die Aufregung: Gewinnen Sie im besten Online-Casino in Deutschland – WinThereCasino hat mein Spielerlebnis auf ein neues Level gehoben. Ich bin Stefan, 35 Jahre alt und ein begeisterter Online-Casino-Spieler. Vor kurzem habe ich WinThereCasino entdeckt und ich muss sagen, ich bin begeistert. Die Auswahl an Spielen ist riesig und die Qualität der Spiele ist hervorragend. Ich habe schon einige Gewinne erzielt und es macht einfach Spaß, im WinThereCasino zu spielen.

Hallo, ich bin Maria, 42 Jahre alt und ich muss sagen, dass ich mit WinThereCasino sehr zufrieden bin. Die Benutzerfreundlichkeit der Website ist ausgezeichnet und ich habe mich sofort zurechtgefunden. Die Auswahl an Spielen ist sehr vielfältig und es ist für jeden Geschmack etwas dabei. Ich habe schon einige Stunden im WinThereCasino verbracht und es macht immer wieder Spaß, neue Spiele auszuprobieren.

Guten Tag, ich bin Thomas, 50 Jahre alt und ich muss sagen, dass ich neutral gegenüber Online-Casinos eingestellt bin. Ich habe schon einige ausprobiert, aber WinThereCasino hebt sich definitiv von der Masse ab. Die Website ist sehr benutzerfreundlich und die Auswahl an Spielen ist beeindruckend. Ich habe noch keine großen Gewinne erzielt, aber ich muss sagen, dass ich den Nervenkitzel des Spielens genieße.

Möchten Sie die Spannung eines Casinos erleben, ohne das Haus zu verlassen? Dann besuchen Sie WinThereCasino, das beste Online-Casino in Deutschland.

Probieren Sie Ihr Glück an unseren top-bewerteten Spielen und erleben Sie die Aufregung von echten Casino-Gewinnen.

Unser sicheres und benutzerfreundliches Online-Casino bietet Ihnen eine erstklassige Spielerfahrung, die Sie nicht verpassen sollten.

Design and Develop by Ovatheme